package com.example.itcacp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.itcacp.entity.Authority;
import com.example.itcacp.entity.Role;
import com.example.itcacp.entity.User;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface AdminService  extends IService<User> {

    // 用户登录方法
    User login(User user);

    //新增用户
    void add(User user, String role_name);

    //删除用户
    void deleteUserById(Long user_id);

    //查询所有用户
    List<User> selectAll();

    //分页查询
    PageInfo<User> selectPage(Integer pageNum, Integer pageSize, String name, String rolename);

    //修改用户资料
    void update(User user, String role_name);
    // 查询所有角色
    List<Role> selectRoleAll();

    //分页查询：所有角色
    PageInfo<Role> selectRolePage(Integer pageNum, Integer pageSize, String roleName, String authorityName);

    /**
     * 新增角色：新增角色的同时并为其分配对应权限（需要在角色权限关联表中添加记录）
     * */
    void addRole (Role role, List<String> authNames);

    //删除角色
    void deleteRoleById(Long roleId);

    //修改角色
    void updateRole(Role user, List<String> authNames);

    // 查询所有权限
    List<Authority> selectAuthAll();

    //分页查询：所有权限
    PageInfo<Authority> selectAuthPage(Integer pageNum, Integer pageSize, String authorityName);

    //添加权限
    void addAuth(Authority authority);
    //删除权限
    void deleteAuthById(Long authorityId);
    //更新权限
    void updateAuth(Authority authority);
}
